/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package eeep.controles;

import eeep.dao.EscolaDAO;
import eeep.entidades.Escola;
import eeep.excecoes.ENEException;
import eeep.excecoes.ESJCException;
import eeep.excecoes.ESNEException;

/**
 *
 * @author Joao
 */
public class EscolaControle {
    EscolaDAO dao =new EscolaDAO();
    EnderecoControle encon=new EnderecoControle();
    
    public void cadastarEscola(Escola escola)throws ESJCException{
        try{
            this.buscarEscolaPorLogin(escola.getLogin());
            throw new ESJCException();
        }catch(ESNEException e){
           try{
               this.buscarEscolaPorEmail(escola.getEmail());
               throw new ESJCException();
           }catch(ESNEException ee){
               try{
                encon.buscarEndereco(escola.getEndereco());
                dao.salvarEscola(escola);
                }catch(ENEException ex){
                   encon.cadastrarEndereco(escola.getEndereco());
                   dao.salvarEscola(escola);
               }
            }
        }
        }
    public Escola buscarEscolaPorLogin(String login) throws ESNEException{
       Escola escola=dao.getEscolaPorLogin(login);
       if(escola!=null){
           try{
           escola.setEndereco(encon.buscarEnderecoPorEscola(escola));
           }catch(ENEException e){}
           return escola;
       }else{
           throw new ESNEException();
       }
    }
    public Escola buscarEscolaPorEmail(String email) throws ESNEException{
       Escola escola=dao.getEscolaPorEmail(email);
       if(escola!=null){
           try{
           escola.setEndereco(encon.buscarEnderecoPorEscola(escola));
           }catch(ENEException e){}
           return escola;
       }else{
           throw new ESNEException();
       }
    }
    public void atualizarEscola(Escola escola,String login)throws ESNEException{
        this.buscarEscolaPorLogin(login);
        dao.atualizarEscola(escola, login);
    }
    public void deletarEscola(String login)throws ESNEException{
        this.buscarEscolaPorLogin(login);
        dao.deleteEscola(login);
    }
}
